python - 有效的 XPath 表达式
全部标签 我将举例说明我遇到的问题。我的XML是这样的Value1Value2Value1Value2Value3我有返回所有“element2”节点的xpath表达式。然后我想为每个“element2”类型的节点找到包含它的“child”类型的节点。问题是在这两个节点之间可以有1到n个不同的节点,所以我不能只使用“..”。有没有像“//”这样的东西会向上看而不是向下看我有一些xpath的基本知识,并根据http://www.w3schools.com/xpath/xpath_syntax.asp“..”返回当前节点的父节点,问题是当前节点是“element2”,问题是xml是动态的,来自第三方
我正在尝试获取返回的数据:http://ipinfodb.com/ip_query.php?ip=74.125.45.100&timezone=true以快速简单的方式写入字典。最好的方法是什么?谢谢。 最佳答案 使用标准Python库中的xml:importxml.etree.ElementTreeasxeecontents='''\74.125.45.100OKUSUnitedStates06CaliforniaMountainView9404337.4192-122.057America/Los_Angeles-252001'
假设我有以下xml:PG...要获取上面元素的文本,我正在执行以下操作:fromlxmlimportentreef=open('/Users/David/Desktop/metadata.xml')metadata_contents=f.read()node=etree.fromstring(metadata_contents)rating=node.xpath('//t:rating/text()',namespaces={'t':'http://example/namespace'})>>>rating['PG']我如何获得值“au-oflc”? 最佳答
我有几个大的.xml文件。我想解析文件来做几件事。我只想拔出:XML-/title1并将其保存到列表A(例如)XML-/title2保存到列表BXML-/title3保存到列表C等等,等等使用Python2.x最好导入/使用哪个库。我将如何设置它?有什么建议吗?例如:89819710002-92976011997JanAmericanjournalofhumangeneticsAm.J.Hum.Genet.mtDNAandYchromosome-specificpolymorphismsinmodernOjibwa:implicationsabouttheoriginoftheirge
我有这样一个xml:www.link1.comwww.link2.com我试过这段代码:fromBeautifulSoupimportBeautifulStoneSoupsoup=BeautifulStoneSoup(results2)#BeautifulSouplinklist=soup.findAll('link')printsoup使用这段代码,输出是[www.link1.com,www.link2.com]但我想要这样的输出[www.link1.com,www.link2.com] 最佳答案 你试过吗:linklist=[e
有2个具有不同命名空间的xml文档,例如declarenamespaceml1="urn:schemas-com:ml1";declarenamespaceml2="urn:schemas-com:ml2";但具有相同的结构。我是否可以仅使用这些namespace而不使用*选择一些节点?我的意思是这样的:fn:doc($uri)/(ml1orml2):root更新:谢谢。所有建议都有效,但对我没有用。因为命名空间可以有3个或更多,xpath表达式会很大。有什么建议吗?结论:感谢您的回答。我同意@MichaelKay的观点,我应该处理所有xml所有文档。问题解决了。
我正在尝试为我传递的一段代码生成的XML创建XML模式。我将描述我的问题的简化版本。假设这段代码生成的XML文件描述了一个文本文档;它看起来像这样:AlineoftextAnotherlinewhichisboldYetanotherline等等。这不是最好的设计,我知道-如果行号是属性会更好,但这就是我必须使用的。它代表了问题所在的行号。有没有什么方法可以编写一个架构,让我为一个元素名称指定一个正则表达式(或类似的)?我希望XSD文件看起来像这样:...第9行的“rX”是表示“一个以r开头并以X结尾的名称,它是一个整数”所需的任何表达式.我宁愿避免自己修复生成代码,所以我想看看是否可
考虑以下XML结构:我想要一个XPath1.0语句来给我@x的最小值和最大值?到目前为止,我至少有以下内容://a/b/c/d[not(preceding-sibling::d/@x这很接近,但没有雪茄:-(非常感谢任何帮助!谢谢,J 最佳答案 要获取最大值,请查找所有不存在较小值的属性值。如果有多个结果,取第一个-它们必须相等。(//@x[not(.对于最小值,只需替换即可通过>.出于完整性原因:如果您的XPath引擎支持XPath2.0(或更好),只需使用max(//@x)尊重min(//@x)这可能会更快、更易读。
给定一个具有以下结构的XML文件:12345GroundLarge...我试图遍历下的每个child元素,检查每个对于特定值,如果找到该值,那么我想删除整个入口。我一直在使用ElementTreePython库,但收效甚微。这是我到目前为止所拥有的:importxml.etree.ElementTreeasETtree=ET.parse('file.xml')root=tree.getroot()iterator=root.getiterator('Target')foriteminiterator:old=item.find('ID')text=old.textif'12345'in
我打开一个URL使用:response=urllib2.urlopen(url,data,timeout=_TIMEOUT)并使用response.read(),它给出以下输出:但是当我想使用ElementTree解析它时,就像这样:printresponse.read()t=ET.parse(response)r=t.getroot()printr.attrib.get('status')给我以下错误信息:File"",line62,inparseFile"",line38,inparsecElementTree.ParseError:noelementfound:line1,col